package frpc.application.web;

import fdupc.http.ResultBean;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 类描述:  Redis管理交互
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2022/8/16 0016 下午 8:32
 */
public interface IRedisManagerController {

    /**
     * 功能描述：获取所有缓存描述
     *
     * @date : 2022/6/22 0022 下午 3:41
     */
    ResultBean giveRedisCacheList(@RequestParam(required = false) String redisKey);

    /**
     * 功能描述：清空Redis缓存描述
     *
     * @date : 2022/6/22 0022 下午 3:41
     */
    ResultBean clearRedisCacheDescription();

    /**
     * 功能描述：获取所有缓存描述
     *
     * @date : 2022/6/22 0022 下午 3:41
     */
    ResultBean giveRedisByKey(@RequestParam String key);

    /**
     * 功能描述：获取所有已经配置的缓存列表
     * @date : 2022/8/22 0022 下午 3:33
     */
    ResultBean giveRedisAllToList();

    /**
     * 属性描述：根据Key清除缓存
     *
     * @date : 2022/6/22 0022 下午 5:32
     */
    ResultBean delRedisCacheByKey(@RequestBody String keys);

    /**
     * 属性描述：根据Key获取缓存存储的数据
     *
     * @date : 2022/6/22 0022 下午 5:32
     */
    ResultBean giveRedisCacheByKey(@RequestParam String key);

    /**
     * 属性描述：添加缓存描述
     *
     * @param redisKey     缓存Key名称
     * @param redisMessage 缓存说明
     * @date : 2022/6/22 0022 下午 5:32
     */
    ResultBean saveOrUpdateCacheDescribe(@RequestParam String redisKey, @RequestParam String redisMessage);

    /**
     * 属性描述：删除缓存描述
     *
     * @param redisKey 缓存Key名称
     * @date : 2022/6/22 0022 下午 5:32
     */
    ResultBean removeCacheDescribe(@RequestParam String redisKey);
}
